# 使用场景: 将每一个.c文件生成对应的可执行程序
Srcs := $(wildcard *.c)
Outs := $(patsubst %.c, %, $(Srcs))

CC := gcc
CFLAGS = -Wall -g

LIBS = -ll8w8jwt -lmbedcrypto -lmbedx509
LIB_PATH = -L/home/mncvm/l8w8jwt/build/mbedtls/library

ALL: $(Outs)

# 显式规则，针对 encode 和 decode 文件分别指定所需的库
encode: encode.c
	$(CC) -o $@ $< $(CFLAGS) $(LIB_PATH) -ll8w8jwt -lmbedcrypto

decode: decode.c
	$(CC) -o $@ $< $(CFLAGS) $(LIB_PATH) -ll8w8jwt -lmbedcrypto -lmbedx509

# 通用规则，其他文件使用通用规则编译
%: %.c
	$(CC) -o $@ $< $(CFLAGS) $(LIB_PATH) $(LIBS)

.PHONY: clean rebuild ALL

clean:
	$(RM) $(Outs)

rebuild: clean ALL
